﻿/**
 * jQuery EasyUI 1.3.2
 *
 * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL or commercial licenses
 * To use it on other terms please contact us: jeasyui@gmail.com
 * http://www.gnu.org/licenses/gpl.txt
 * http://www.jeasyui.com/license_commercial.php
 *
 */
(function ($) {
    function _1(a, o) {
        for (var i = 0, _2 = a.length; i < _2; i++) {
            if (a[i] == o) {
                return i;
            }
        }
        return -1;
    };

    function _3(a, o) {
        var _4 = _1(a, o);
        if (_4 != -1) {
            a.splice(_4, 1);
        }
    };

    function _5(_6) {
        var _7 = $.data(_6, "treegrid").options;
        $(_6).datagrid($.extend({}, _7, {
            url: null, data: null, loader: function () {
                return false;
            }, onLoadSuccess: function () {
            }, onResizeColumn: function (_8, _9) {
                _21(_6);
                _7.onResizeColumn.call(_6, _8, _9);
            }, onSortColumn: function (_a, _b) {
                _7.sortName = _a;
                _7.sortOrder = _b;
                if (_7.remoteSort) {
                    _20(_6);
                } else {
                    var _c = $(_6).treegrid("getData");
                    _3a(_6, 0, _c);
                }
                _7.onSortColumn.call(_6, _a, _b);
            }, onBeforeEdit: function (_d, _e) {
                if (_7.onBeforeEdit.call(_6, _e) == false) {
                    return false;
                }
            }, onAfterEdit: function (_f, row, _10) {
                _7.onAfterEdit.call(_6, row, _10);
            }, onCancelEdit: function (_11, row) {
                _7.onCancelEdit.call(_6, row);
            }, onSelect: function (_12) {
                _7.onSelect.call(_6, _41(_6, _12));
            }, onUnselect: function (_13) {
                _7.onUnselect.call(_6, _41(_6, _13));
            }, onSelectAll: function () {
                _7.onSelectAll.call(_6, $.data(_6, "treegrid").data);
            }, onUnselectAll: function () {
                _7.onUnselectAll.call(_6, $.data(_6, "treegrid").data);
            }, onCheck: function (_14) {
                _7.onCheck.call(_6, _41(_6, _14));
            }, onUncheck: function (_15) {
                _7.onUncheck.call(_6, _41(_6, _15));
            }, onCheckAll: function () {
                _7.onCheckAll.call(_6, $.data(_6, "treegrid").data);
            }, onUncheckAll: function () {
                _7.onUncheckAll.call(_6, $.data(_6, "treegrid").data);
            }, onClickRow: function (_16) {
                _7.onClickRow.call(_6, _41(_6, _16));
            }, onDblClickRow: function (_17) {
                _7.onDblClickRow.call(_6, _41(_6, _17));
            }, onClickCell: function (_18, _19) {
                _7.onClickCell.call(_6, _19, _41(_6, _18));
            }, onDblClickCell: function (_1a, _1b) {
                _7.onDblClickCell.call(_6, _1b, _41(_6, _1a));
            }, onRowContextMenu: function (e, _1c) {
                _7.onContextMenu.call(_6, e, _41(_6, _1c));
            }
        }));
        if (_7.pagination) {
            var _1d = $(_6).datagrid("getPager");
            _1d.pagination({
                pageNumber: _7.pageNumber,
                pageSize: _7.pageSize,
                pageList: _7.pageList,
                onSelectPage: function (_1e, _1f) {
                    _7.pageNumber = _1e;
                    _7.pageSize = _1f;
                    _20(_6);
                }
            });
            _7.pageSize = _1d.pagination("options").pageSize;
        }
    };

    function _21(_22, _23) {
        var _24 = $.data(_22, "datagrid").options;
        var dc = $.data(_22, "datagrid").dc;
        if (!dc.body1.is(":empty") && (!_24.nowrap || _24.autoRowHeight)) {
            if (_23 != undefined) {
                var _25 = _26(_22, _23);
                for (var i = 0; i < _25.length; i++) {
                    _27(_25[i][_24.idField]);
                }
            }
        }
        $(_22).datagrid("fixRowHeight", _23);

        function _27(_28) {
            var tr1 = _24.finder.getTr(_22, _28, "body", 1);
            var tr2 = _24.finder.getTr(_22, _28, "body", 2);
            tr1.css("height", "");
            tr2.css("height", "");
            var _29 = Math.max(tr1.height(), tr2.height());
            tr1.css("height", _29);
            tr2.css("height", _29);
        };
    };

    function _2a(_2b) {
        var dc = $.data(_2b, "datagrid").dc;
        var _2c = $.data(_2b, "treegrid").options;
        if (!_2c.rownumbers) {
            return;
        }
        dc.body1.find("div.datagrid-cell-rownumber").each(function (i) {
            $(this).html(i + 1);
        });
    };

    function _2d(_2e) {
        var dc = $.data(_2e, "datagrid").dc;
        var _2f = dc.body1.add(dc.body2);
        var _30 = ($.data(_2f[0], "events") || $._data(_2f[0], "events")).click[0].handler;
        dc.body1.add(dc.body2).bind("mouseover", function (e) {
            var tt = $(e.target);
            var tr = tt.closest("tr.datagrid-row");
            if (!tr.length) {
                return;
            }
            if (tt.hasClass("tree-hit")) {
                tt.hasClass("tree-expanded") ? tt.addClass("tree-expanded-hover") : tt.addClass("tree-collapsed-hover");
            }
            e.stopPropagation();
        }).bind("mouseout", function (e) {
            var tt = $(e.target);
            var tr = tt.closest("tr.datagrid-row");
            if (!tr.length) {
                return;
            }
            if (tt.hasClass("tree-hit")) {
                tt.hasClass("tree-expanded") ? tt.removeClass("tree-expanded-hover") : tt.removeClass("tree-collapsed-hover");
            }
            e.stopPropagation();
        }).unbind("click").bind("click", function (e) {
            var tt = $(e.target);
            var tr = tt.closest("tr.datagrid-row");
            if (!tr.length) {
                return;
            }
            if (tt.hasClass("tree-hit")) {
                _31(_2e, tr.attr("node-id"));
            } else {
                _30(e);
            }
            e.stopPropagation();
        });
    };

    function _32(_33, _34) {
        var _35 = $.data(_33, "treegrid").options;
        var tr1 = _35.finder.getTr(_33, _34, "body", 1);
        var tr2 = _35.finder.getTr(_33, _34, "body", 2);
        var _36 = $(_33).datagrid("getColumnFields", true).length + (_35.rownumbers ? 1 : 0);
        var _37 = $(_33).datagrid("getColumnFields", false).length;
        _38(tr1, _36);
        _38(tr2, _37);

        function _38(tr, _39) {
            $("<tr class=\"treegrid-tr-tree\">" + "<td style=\"border:0px\" colspan=\"" + _39 + "\">" + "<div></div>" + "</td>" + "</tr>").insertAfter(tr);
        };
    };

    function _3a(_3b, _3c, _3d, _3e) {
        var _3f = $.data(_3b, "treegrid").options;
        var dc = $.data(_3b, "datagrid").dc;
        _3d = _3f.loadFilter.call(_3b, _3d, _3c);
        var _40 = _41(_3b, _3c);
        if (_40) {
            var _42 = _3f.finder.getTr(_3b, _3c, "body", 1);
            var _43 = _3f.finder.getTr(_3b, _3c, "body", 2);
            var cc1 = _42.next("tr.treegrid-tr-tree").children("td").children("div");
            var cc2 = _43.next("tr.treegrid-tr-tree").children("td").children("div");
        } else {
            var cc1 = dc.body1;
            var cc2 = dc.body2;
        }
        if (!_3e) {
            $.data(_3b, "treegrid").data = [];
            cc1.empty();
            cc2.empty();
        }
        if (_3f.view.onBeforeRender) {
            _3f.view.onBeforeRender.call(_3f.view, _3b, _3c, _3d);
        }
        _3f.view.render.call(_3f.view, _3b, cc1, true);
        _3f.view.render.call(_3f.view, _3b, cc2, false);
        if (_3f.showFooter) {
            _3f.view.renderFooter.call(_3f.view, _3b, dc.footer1, true);
            _3f.view.renderFooter.call(_3f.view, _3b, dc.footer2, false);
        }
        if (_3f.view.onAfterRender) {
            _3f.view.onAfterRender.call(_3f.view, _3b);
        }
        _3f.onLoadSuccess.call(_3b, _40, _3d);
        if (!_3c && _3f.pagination) {
            var _44 = $.data(_3b, "treegrid").total;
            var _45 = $(_3b).datagrid("getPager");
            if (_45.pagination("options").total != _44) {
                _45.pagination({total: _44});
            }
        }
        _21(_3b);
        _2a(_3b);
        $(_3b).treegrid("autoSizeColumn");
    };

    function _20(_46, _47, _48, _49, _4a) {
        var _4b = $.data(_46, "treegrid").options;
        var _4c = $(_46).datagrid("getPanel").find("div.datagrid-body");
        if (_48) {
            _4b.queryParams = _48;
        }
        var _4d = $.extend({}, _4b.queryParams);
        if (_4b.pagination) {
            $.extend(_4d, {page: _4b.pageNumber, rows: _4b.pageSize});
        }
        if (_4b.sortName) {
            $.extend(_4d, {sort: _4b.sortName, order: _4b.sortOrder});
        }
        var row = _41(_46, _47);
        if (_4b.onBeforeLoad.call(_46, row, _4d) == false) {
            return;
        }
        var _4e = _4c.find("tr[node-id=" + _47 + "] span.tree-folder");
        _4e.addClass("tree-loading");
        $(_46).treegrid("loading");
        var _4f = _4b.loader.call(_46, _4d, function (_50) {
            _4e.removeClass("tree-loading");
            $(_46).treegrid("loaded");
            _3a(_46, _47, _50, _49);
            if (_4a) {
                _4a();
            }
        }, function () {
            _4e.removeClass("tree-loading");
            $(_46).treegrid("loaded");
            _4b.onLoadError.apply(_46, arguments);
            if (_4a) {
                _4a();
            }
        });
        if (_4f == false) {
            _4e.removeClass("tree-loading");
            $(_46).treegrid("loaded");
        }
    };

    function _51(_52) {
        var _53 = _54(_52);
        if (_53.length) {
            return _53[0];
        } else {
            return null;
        }
    };

    function _54(_55) {
        return $.data(_55, "treegrid").data;
    };

    function _56(_57, _58) {
        var row = _41(_57, _58);
        if (row._parentId) {
            return _41(_57, row._parentId);
        } else {
            return null;
        }
    };

    function _26(_59, _5a) {
        var _5b = $.data(_59, "treegrid").options;
        var _5c = $(_59).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body");
        var _5d = [];
        if (_5a) {
            _5e(_5a);
        } else {
            var _5f = _54(_59);
            for (var i = 0; i < _5f.length; i++) {
                _5d.push(_5f[i]);
                _5e(_5f[i][_5b.idField]);
            }
        }

        function _5e(_60) {
            var _61 = _41(_59, _60);
            if (_61 && _61.children) {
                for (var i = 0, len = _61.children.length; i < len; i++) {
                    var _62 = _61.children[i];
                    _5d.push(_62);
                    _5e(_62[_5b.idField]);
                }
            }
        };
        return _5d;
    };

    function _63(_64) {
        var _65 = _66(_64);
        if (_65.length) {
            return _65[0];
        } else {
            return null;
        }
    };

    function _66(_67) {
        var _68 = [];
        var _69 = $(_67).datagrid("getPanel");
        _69.find("div.datagrid-view2 div.datagrid-body tr.datagrid-row-selected").each(function () {
            var id = $(this).attr("node-id");
            _68.push(_41(_67, id));
        });
        return _68;
    };

    function _6a(_6b, _6c) {
        if (!_6c) {
            return 0;
        }
        var _6d = $.data(_6b, "treegrid").options;
        var _6e = $(_6b).datagrid("getPanel").children("div.datagrid-view");
        var _6f = _6e.find("div.datagrid-body tr[node-id=" + _6c + "]").children("td[field=" + _6d.treeField + "]");
        return _6f.find("span.tree-indent,span.tree-hit").length;
    };

    function _41(_70, _71) {
        var _72 = $.data(_70, "treegrid").options;
        var _73 = $.data(_70, "treegrid").data;
        var cc = [_73];
        while (cc.length) {
            var c = cc.shift();
            for (var i = 0; i < c.length; i++) {
                var _74 = c[i];
                if (_74[_72.idField] == _71) {
                    return _74;
                } else {
                    if (_74["children"]) {
                        cc.push(_74["children"]);
                    }
                }
            }
        }
        return null;
    };

    function _75(_76, _77) {
        var _78 = $.data(_76, "treegrid").options;
        var row = _41(_76, _77);
        var tr = _78.finder.getTr(_76, _77);
        var hit = tr.find("span.tree-hit");
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-collapsed")) {
            return;
        }
        if (_78.onBeforeCollapse.call(_76, row) == false) {
            return;
        }
        hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
        hit.next().removeClass("tree-folder-open");
        row.state = "closed";
        tr = tr.next("tr.treegrid-tr-tree");
        var cc = tr.children("td").children("div");
        if (_78.animate) {
            cc.slideUp("normal", function () {
                $(_76).treegrid("autoSizeColumn");
                _21(_76, _77);
                _78.onCollapse.call(_76, row);
            });
        } else {
            cc.hide();
            $(_76).treegrid("autoSizeColumn");
            _21(_76, _77);
            _78.onCollapse.call(_76, row);
        }
    };

    function _79(_7a, _7b) {
        var _7c = $.data(_7a, "treegrid").options;
        var tr = _7c.finder.getTr(_7a, _7b);
        var hit = tr.find("span.tree-hit");
        var row = _41(_7a, _7b);
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-expanded")) {
            return;
        }
        if (_7c.onBeforeExpand.call(_7a, row) == false) {
            return;
        }
        hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
        hit.next().addClass("tree-folder-open");
        var _7d = tr.next("tr.treegrid-tr-tree");
        if (_7d.length) {
            var cc = _7d.children("td").children("div");
            _7e(cc);
        } else {
            _32(_7a, row[_7c.idField]);
            var _7d = tr.next("tr.treegrid-tr-tree");
            var cc = _7d.children("td").children("div");
            cc.hide();
            _20(_7a, row[_7c.idField], {id: row[_7c.idField]}, true, function () {
                if (cc.is(":empty")) {
                    _7d.remove();
                } else {
                    _7e(cc);
                }
            });
        }

        function _7e(cc) {
            row.state = "open";
            if (_7c.animate) {
                cc.slideDown("normal", function () {
                    $(_7a).treegrid("autoSizeColumn");
                    _21(_7a, _7b);
                    _7c.onExpand.call(_7a, row);
                });
            } else {
                cc.show();
                $(_7a).treegrid("autoSizeColumn");
                _21(_7a, _7b);
                _7c.onExpand.call(_7a, row);
            }
        };
    };

    function _31(_7f, _80) {
        var _81 = $.data(_7f, "treegrid").options;
        var tr = _81.finder.getTr(_7f, _80);
        var hit = tr.find("span.tree-hit");
        if (hit.hasClass("tree-expanded")) {
            _75(_7f, _80);
        } else {
            _79(_7f, _80);
        }
    };

    function _82(_83, _84) {
        var _85 = $.data(_83, "treegrid").options;
        var _86 = _26(_83, _84);
        if (_84) {
            _86.unshift(_41(_83, _84));
        }
        for (var i = 0; i < _86.length; i++) {
            _75(_83, _86[i][_85.idField]);
        }
    };

    function _87(_88, _89) {
        var _8a = $.data(_88, "treegrid").options;
        var _8b = _26(_88, _89);
        if (_89) {
            _8b.unshift(_41(_88, _89));
        }
        for (var i = 0; i < _8b.length; i++) {
            _79(_88, _8b[i][_8a.idField]);
        }
    };

    function _8c(_8d, _8e) {
        var _8f = $.data(_8d, "treegrid").options;
        var ids = [];
        var p = _56(_8d, _8e);
        while (p) {
            var id = p[_8f.idField];
            ids.unshift(id);
            p = _56(_8d, id);
        }
        for (var i = 0; i < ids.length; i++) {
            _79(_8d, ids[i]);
        }
    };

    function _90(_91, _92) {
        var _93 = $.data(_91, "treegrid").options;
        if (_92.parent) {
            var tr = _93.finder.getTr(_91, _92.parent);
            if (tr.next("tr.treegrid-tr-tree").length == 0) {
                _32(_91, _92.parent);
            }
            var _94 = tr.children("td[field=" + _93.treeField + "]").children("div.datagrid-cell");
            var _95 = _94.children("span.tree-icon");
            if (_95.hasClass("tree-file")) {
                _95.removeClass("tree-file").addClass("tree-folder");
                var hit = $("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_95);
                if (hit.prev().length) {
                    hit.prev().remove();
                }
            }
        }
        _3a(_91, _92.parent, _92.data, true);
    };

    function _96(_97, _98) {
        var ref = _98.before || _98.after;
        var _99 = $.data(_97, "treegrid").options;
        var _9a = _56(_97, ref);
        _90(_97, {parent: (_9a ? _9a[_99.idField] : null), data: [_98.data]});
        _9b(true);
        _9b(false);
        _2a(_97);

        function _9b(_9c) {
            var _9d = _9c ? 1 : 2;
            var tr = _99.finder.getTr(_97, _98.data[_99.idField], "body", _9d);
            var _9e = tr.closest("table.datagrid-btable");
            tr = tr.parent().children();
            var _9f = _99.finder.getTr(_97, ref, "body", _9d);
            if (_98.before) {
                tr.insertBefore(_9f);
            } else {
                var sub = _9f.next("tr.treegrid-tr-tree");
                tr.insertAfter(sub.length ? sub : _9f);
            }
            _9e.remove();
        };
    };

    function _a0(_a1, _a2) {
        var _a3 = $.data(_a1, "treegrid").options;
        var tr = _a3.finder.getTr(_a1, _a2);
        tr.next("tr.treegrid-tr-tree").remove();
        tr.remove();
        var _a4 = del(_a2);
        if (_a4) {
            if (_a4.children.length == 0) {
                tr = _a3.finder.getTr(_a1, _a4[_a3.idField]);
                tr.next("tr.treegrid-tr-tree").remove();
                var _a5 = tr.children("td[field=" + _a3.treeField + "]").children("div.datagrid-cell");
                _a5.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
                _a5.find(".tree-hit").remove();
                $("<span class=\"tree-indent\"></span>").prependTo(_a5);
            }
        }
        _2a(_a1);

        function del(id) {
            var cc;
            var _a6 = _56(_a1, _a2);
            if (_a6) {
                cc = _a6.children;
            } else {
                cc = $(_a1).treegrid("getData");
            }
            for (var i = 0; i < cc.length; i++) {
                if (cc[i][_a3.idField] == id) {
                    cc.splice(i, 1);
                    break;
                }
            }
            return _a6;
        };
    };
    $.fn.treegrid = function (_a7, _a8) {
        if (typeof _a7 == "string") {
            var _a9 = $.fn.treegrid.methods[_a7];
            if (_a9) {
                return _a9(this, _a8);
            } else {
                return this.datagrid(_a7, _a8);
            }
        }
        _a7 = _a7 || {};
        return this.each(function () {
            var _aa = $.data(this, "treegrid");
            if (_aa) {
                $.extend(_aa.options, _a7);
            } else {
                _aa = $.data(this, "treegrid", {
                    options: $.extend({}, $.fn.treegrid.defaults, $.fn.treegrid.parseOptions(this), _a7),
                    data: []
                });
            }
            _5(this);
            if (_aa.options.data) {
                $(this).treegrid("loadData", _aa.options.data);
            }
            _20(this);
            _2d(this);
        });
    };
    $.fn.treegrid.methods = {
        options: function (jq) {
            return $.data(jq[0], "treegrid").options;
        }, resize: function (jq, _ab) {
            return jq.each(function () {
                $(this).datagrid("resize", _ab);
            });
        }, fixRowHeight: function (jq, _ac) {
            return jq.each(function () {
                _21(this, _ac);
            });
        }, loadData: function (jq, _ad) {
            return jq.each(function () {
                _3a(this, null, _ad);
            });
        }, reload: function (jq, id) {
            return jq.each(function () {
                if (id) {
                    var _ae = $(this).treegrid("find", id);
                    if (_ae.children) {
                        _ae.children.splice(0, _ae.children.length);
                    }
                    var _af = $(this).datagrid("getPanel").find("div.datagrid-body");
                    var tr = _af.find("tr[node-id=" + id + "]");
                    tr.next("tr.treegrid-tr-tree").remove();
                    var hit = tr.find("span.tree-hit");
                    hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
                    _79(this, id);
                } else {
                    _20(this, null, {});
                }
            });
        }, reloadFooter: function (jq, _b0) {
            return jq.each(function () {
                var _b1 = $.data(this, "treegrid").options;
                var dc = $.data(this, "datagrid").dc;
                if (_b0) {
                    $.data(this, "treegrid").footer = _b0;
                }
                if (_b1.showFooter) {
                    _b1.view.renderFooter.call(_b1.view, this, dc.footer1, true);
                    _b1.view.renderFooter.call(_b1.view, this, dc.footer2, false);
                    if (_b1.view.onAfterRender) {
                        _b1.view.onAfterRender.call(_b1.view, this);
                    }
                    $(this).treegrid("fixRowHeight");
                }
            });
        }, getData: function (jq) {
            return $.data(jq[0], "treegrid").data;
        }, getFooterRows: function (jq) {
            return $.data(jq[0], "treegrid").footer;
        }, getRoot: function (jq) {
            return _51(jq[0]);
        }, getRoots: function (jq) {
            return _54(jq[0]);
        }, getParent: function (jq, id) {
            return _56(jq[0], id);
        }, getChildren: function (jq, id) {
            return _26(jq[0], id);
        }, getSelected: function (jq) {
            return _63(jq[0]);
        }, getSelections: function (jq) {
            return _66(jq[0]);
        }, getLevel: function (jq, id) {
            return _6a(jq[0], id);
        }, find: function (jq, id) {
            return _41(jq[0], id);
        }, isLeaf: function (jq, id) {
            var _b2 = $.data(jq[0], "treegrid").options;
            var tr = _b2.finder.getTr(jq[0], id);
            var hit = tr.find("span.tree-hit");
            return hit.length == 0;
        }, select: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("selectRow", id);
            });
        }, unselect: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("unselectRow", id);
            });
        }, collapse: function (jq, id) {
            return jq.each(function () {
                _75(this, id);
            });
        }, expand: function (jq, id) {
            return jq.each(function () {
                _79(this, id);
            });
        }, toggle: function (jq, id) {
            return jq.each(function () {
                _31(this, id);
            });
        }, collapseAll: function (jq, id) {
            return jq.each(function () {
                _82(this, id);
            });
        }, expandAll: function (jq, id) {
            return jq.each(function () {
                _87(this, id);
            });
        }, expandTo: function (jq, id) {
            return jq.each(function () {
                _8c(this, id);
            });
        }, append: function (jq, _b3) {
            return jq.each(function () {
                _90(this, _b3);
            });
        }, insert: function (jq, _b4) {
            return jq.each(function () {
                _96(this, _b4);
            });
        }, remove: function (jq, id) {
            return jq.each(function () {
                _a0(this, id);
            });
        }, pop: function (jq, id) {
            var row = jq.treegrid("find", id);
            jq.treegrid("remove", id);
            return row;
        }, refresh: function (jq, id) {
            return jq.each(function () {
                var _b5 = $.data(this, "treegrid").options;
                _b5.view.refreshRow.call(_b5.view, this, id);
            });
        }, update: function (jq, _b6) {
            return jq.each(function () {
                var _b7 = $.data(this, "treegrid").options;
                _b7.view.updateRow.call(_b7.view, this, _b6.id, _b6.row);
            });
        }, beginEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("beginEdit", id);
                $(this).treegrid("fixRowHeight", id);
            });
        }, endEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("endEdit", id);
            });
        }, cancelEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("cancelEdit", id);
            });
        }
    };
    $.fn.treegrid.parseOptions = function (_b8) {
        return $.extend({}, $.fn.datagrid.parseOptions(_b8), $.parser.parseOptions(_b8, ["treeField", {animate: "boolean"}]));
    };
    var _b9 = $.extend({}, $.fn.datagrid.defaults.view, {
        render: function (_ba, _bb, _bc) {
            var _bd = $.data(_ba, "treegrid").options;
            var _be = $(_ba).datagrid("getColumnFields", _bc);
            var _bf = $.data(_ba, "datagrid").rowIdPrefix;
            if (_bc) {
                if (!(_bd.rownumbers || (_bd.frozenColumns && _bd.frozenColumns.length))) {
                    return;
                }
            }
            var _c0 = this;
            var _c1 = _c2(_bc, this.treeLevel, this.treeNodes);
            $(_bb).append(_c1.join(""));

            function _c2(_c3, _c4, _c5) {
                var _c6 = ["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
                for (var i = 0; i < _c5.length; i++) {
                    var row = _c5[i];
                    if (row.state != "open" && row.state != "closed") {
                        row.state = "open";
                    }
                    var _c7 = _bd.rowStyler ? _bd.rowStyler.call(_ba, row) : "";
                    var _c8 = _c7 ? "style=\"" + _c7 + "\"" : "";
                    var _c9 = _bf + "-" + (_c3 ? 1 : 2) + "-" + row[_bd.idField];
                    _c6.push("<tr id=\"" + _c9 + "\" class=\"datagrid-row\" node-id=" + row[_bd.idField] + " " + _c8 + ">");
                    _c6 = _c6.concat(_c0.renderRow.call(_c0, _ba, _be, _c3, _c4, row));
                    _c6.push("</tr>");
                    if (row.children && row.children.length) {
                        var tt = _c2(_c3, _c4 + 1, row.children);
                        var v = row.state == "closed" ? "none" : "block";
                        _c6.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan=" + (_be.length + (_bd.rownumbers ? 1 : 0)) + "><div style=\"display:" + v + "\">");
                        _c6 = _c6.concat(tt);
                        _c6.push("</div></td></tr>");
                    }
                }
                _c6.push("</tbody></table>");
                return _c6;
            };
        }, renderFooter: function (_ca, _cb, _cc) {
            var _cd = $.data(_ca, "treegrid").options;
            var _ce = $.data(_ca, "treegrid").footer || [];
            var _cf = $(_ca).datagrid("getColumnFields", _cc);
            var _d0 = ["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
            for (var i = 0; i < _ce.length; i++) {
                var row = _ce[i];
                row[_cd.idField] = row[_cd.idField] || ("foot-row-id" + i);
                _d0.push("<tr class=\"datagrid-row\" node-id=" + row[_cd.idField] + ">");
                _d0.push(this.renderRow.call(this, _ca, _cf, _cc, 0, row));
                _d0.push("</tr>");
            }
            _d0.push("</tbody></table>");
            $(_cb).html(_d0.join(""));
        }, renderRow: function (_d1, _d2, _d3, _d4, row) {
            var _d5 = $.data(_d1, "treegrid").options;
            var cc = [];
            if (_d3 && _d5.rownumbers) {
                cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
            }
            for (var i = 0; i < _d2.length; i++) {
                var _d6 = _d2[i];
                var col = $(_d1).datagrid("getColumnOption", _d6);
                if (col) {
                    var _d7 = col.styler ? (col.styler(row[_d6], row) || "") : "";
                    var _d8 = col.hidden ? "style=\"display:none;" + _d7 + "\"" : (_d7 ? "style=\"" + _d7 + "\"" : "");
                    cc.push("<td field=\"" + _d6 + "\" " + _d8 + ">");
                    if (col.checkbox) {
                        var _d8 = "";
                    } else {
                        var _d8 = "";
                        if (col.align) {
                            _d8 += "text-align:" + col.align + ";";
                        }
                        if (!_d5.nowrap) {
                            _d8 += "white-space:normal;height:auto;";
                        } else {
                            if (_d5.autoRowHeight) {
                                _d8 += "height:auto;";
                            }
                        }
                    }
                    cc.push("<div style=\"" + _d8 + "\" ");
                    if (col.checkbox) {
                        cc.push("class=\"datagrid-cell-check ");
                    } else {
                        cc.push("class=\"datagrid-cell " + col.cellClass);
                    }
                    cc.push("\">");
                    if (col.checkbox) {
                        if (row.checked) {
                            cc.push("<input type=\"checkbox\" checked=\"checked\"");
                        } else {
                            cc.push("<input type=\"checkbox\"");
                        }
                        cc.push(" name=\"" + _d6 + "\" value=\"" + (row[_d6] != undefined ? row[_d6] : "") + "\"/>");
                    } else {
                        var val = null;
                        if (col.formatter) {
                            val = col.formatter(row[_d6], row);
                        } else {
                            val = row[_d6];
                        }
                        if (_d6 == _d5.treeField) {
                            for (var j = 0; j < _d4; j++) {
                                cc.push("<span class=\"tree-indent\"></span>");
                            }
                            if (row.state == "closed") {
                                cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
                                cc.push("<span class=\"tree-icon tree-folder " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                            } else {
                                if (row.children && row.children.length) {
                                    cc.push("<span class=\"tree-hit tree-expanded\"></span>");
                                    cc.push("<span class=\"tree-icon tree-folder tree-folder-open " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                } else {
                                    cc.push("<span class=\"tree-indent\"></span>");
                                    cc.push("<span class=\"tree-icon tree-file " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                }
                            }
                            cc.push("<span class=\"tree-title\">" + val + "</span>");
                        } else {
                            cc.push(val);
                        }
                    }
                    cc.push("</div>");
                    cc.push("</td>");
                }
            }
            return cc.join("");
        }, refreshRow: function (_d9, id) {
            this.updateRow.call(this, _d9, id, {});
        }, updateRow: function (_da, id, row) {
            var _db = $.data(_da, "treegrid").options;
            var _dc = $(_da).treegrid("find", id);
            $.extend(_dc, row);
            var _dd = $(_da).treegrid("getLevel", id) - 1;
            var _de = _db.rowStyler ? _db.rowStyler.call(_da, _dc) : "";

            function _df(_e0) {
                var _e1 = $(_da).treegrid("getColumnFields", _e0);
                var tr = _db.finder.getTr(_da, id, "body", (_e0 ? 1 : 2));
                var _e2 = tr.find("div.datagrid-cell-rownumber").html();
                var _e3 = tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
                tr.html(this.renderRow(_da, _e1, _e0, _dd, _dc));
                tr.attr("style", _de || "");
                tr.find("div.datagrid-cell-rownumber").html(_e2);
                if (_e3) {
                    tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked", true);
                }
            };
            _df.call(this, true);
            _df.call(this, false);
            $(_da).treegrid("fixRowHeight", id);
        }, onBeforeRender: function (_e4, _e5, _e6) {
            if (!_e6) {
                return false;
            }
            var _e7 = $.data(_e4, "treegrid").options;
            if (_e6.length == undefined) {
                if (_e6.footer) {
                    $.data(_e4, "treegrid").footer = _e6.footer;
                }
                if (_e6.total) {
                    $.data(_e4, "treegrid").total = _e6.total;
                }
                _e6 = this.transfer(_e4, _e5, _e6.rows);
            } else {
                function _e8(_e9, _ea) {
                    for (var i = 0; i < _e9.length; i++) {
                        var row = _e9[i];
                        row._parentId = _ea;
                        if (row.children && row.children.length) {
                            _e8(row.children, row[_e7.idField]);
                        }
                    }
                };
                _e8(_e6, _e5);
            }
            var _eb = _41(_e4, _e5);
            if (_eb) {
                if (_eb.children) {
                    _eb.children = _eb.children.concat(_e6);
                } else {
                    _eb.children = _e6;
                }
            } else {
                $.data(_e4, "treegrid").data = $.data(_e4, "treegrid").data.concat(_e6);
            }
            if (!_e7.remoteSort) {
                this.sort(_e4, _e6);
            }
            this.treeNodes = _e6;
            this.treeLevel = $(_e4).treegrid("getLevel", _e5);
        }, sort: function (_ec, _ed) {
            var _ee = $.data(_ec, "treegrid").options;
            var opt = $(_ec).treegrid("getColumnOption", _ee.sortName);
            if (opt) {
                var _ef = opt.sorter || function (a, b) {
                    return (a > b ? 1 : -1);
                };
                _f0(_ed);
            }

            function _f0(_f1) {
                _f1.sort(function (r1, r2) {
                    return _ef(r1[_ee.sortName], r2[_ee.sortName]) * (_ee.sortOrder == "asc" ? 1 : -1);
                });
                for (var i = 0; i < _f1.length; i++) {
                    var _f2 = _f1[i].children;
                    if (_f2 && _f2.length) {
                        _f0(_f2);
                    }
                }
            };
        }, transfer: function (_f3, _f4, _f5) {
            var _f6 = $.data(_f3, "treegrid").options;
            var _f7 = [];
            for (var i = 0; i < _f5.length; i++) {
                _f7.push(_f5[i]);
            }
            var _f8 = [];
            for (var i = 0; i < _f7.length; i++) {
                var row = _f7[i];
                if (!_f4) {
                    if (!row._parentId) {
                        _f8.push(row);
                        _3(_f7, row);
                        i--;
                    }
                } else {
                    if (row._parentId == _f4) {
                        _f8.push(row);
                        _3(_f7, row);
                        i--;
                    }
                }
            }
            var _f9 = [];
            for (var i = 0; i < _f8.length; i++) {
                _f9.push(_f8[i]);
            }
            while (_f9.length) {
                var _fa = _f9.shift();
                for (var i = 0; i < _f7.length; i++) {
                    var row = _f7[i];
                    if (row._parentId == _fa[_f6.idField]) {
                        if (_fa.children) {
                            _fa.children.push(row);
                        } else {
                            _fa.children = [row];
                        }
                        _f9.push(row);
                        _3(_f7, row);
                        i--;
                    }
                }
            }
            return _f8;
        }
    });
    $.fn.treegrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
        treeField: null, animate: false, singleSelect: true, view: _b9, loader: function (_fb, _fc, _fd) {
            var _fe = $(this).treegrid("options");
            if (!_fe.url) {
                return false;
            }
            $.ajax({
                type: _fe.method, url: _fe.url, data: _fb, dataType: "json", success: function (_ff) {
                    _fc(_ff);
                }, error: function () {
                    _fd.apply(this, arguments);
                }
            });
        }, loadFilter: function (data, _100) {
            return data;
        }, finder: {
            getTr: function (_101, id, type, _102) {
                type = type || "body";
                _102 = _102 || 0;
                var dc = $.data(_101, "datagrid").dc;
                if (_102 == 0) {
                    var opts = $.data(_101, "treegrid").options;
                    var tr1 = opts.finder.getTr(_101, id, type, 1);
                    var tr2 = opts.finder.getTr(_101, id, type, 2);
                    return tr1.add(tr2);
                } else {
                    if (type == "body") {
                        var tr = $("#" + $.data(_101, "datagrid").rowIdPrefix + "-" + _102 + "-" + id);
                        if (!tr.length) {
                            tr = (_102 == 1 ? dc.body1 : dc.body2).find("tr[node-id=" + id + "]");
                        }
                        return tr;
                    } else {
                        if (type == "footer") {
                            return (_102 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id=" + id + "]");
                        } else {
                            if (type == "selected") {
                                return (_102 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-selected");
                            } else {
                                if (type == "last") {
                                    return (_102 == 1 ? dc.body1 : dc.body2).find("tr:last[node-id]");
                                } else {
                                    if (type == "allbody") {
                                        return (_102 == 1 ? dc.body1 : dc.body2).find("tr[node-id]");
                                    } else {
                                        if (type == "allfooter") {
                                            return (_102 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id]");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }, getRow: function (_103, p) {
                var id = (typeof p == "object") ? p.attr("node-id") : p;
                return $(_103).treegrid("find", id);
            }
        }, onBeforeLoad: function (row, _104) {
        }, onLoadSuccess: function (row, data) {
        }, onLoadError: function () {
        }, onBeforeCollapse: function (row) {
        }, onCollapse: function (row) {
        }, onBeforeExpand: function (row) {
        }, onExpand: function (row) {
        }, onClickRow: function (row) {
        }, onDblClickRow: function (row) {
        }, onClickCell: function (_105, row) {
        }, onDblClickCell: function (_106, row) {
        }, onContextMenu: function (e, row) {
        }, onBeforeEdit: function (row) {
        }, onAfterEdit: function (row, _107) {
        }, onCancelEdit: function (row) {
        }
    });
})(jQuery);

